package com.startdima.user.domain.repository;

import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import com.startdima.user.domain.entity.UserInfo;

import lombok.NonNull;

public interface UserRepository extends JpaRepository<UserInfo, Long>, JpaSpecificationExecutor<UserInfo> {
	
	/**
	 * 根据账号密码获取用户信息
	 * @param username 账号
	 * @param password 密码
	 * @return Optional<UserInfo>
	 */
	Optional<UserInfo> findByUsernameAndPassword(@NonNull String username, @NonNull String password);
	
	/**
	 * 根据用户名获取用户信息
	 * @param username 用户名
	 * @return Optional<UserInfo>
	 */
	Optional<UserInfo> findByUsername(@NonNull String username);
	
	/**
	 * 根据Token获取用户信息
	 * @param token Token值
	 * @return Optional<UserInfo>
	 */
	Optional<UserInfo> findByToken(@NonNull String token);

}
